]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
workspacesView: Simplify syncing actual geometry
authorFlorian Müllner <fmuellner@gnome.org>
Thu, 25 Jun 2020 23:15:33 +0000 (01:15 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Mon, 6 Jul 2020 22:06:53 +0000 (00:06 +0200)
We adjust the size and position of the primary view to match the workspaces
display, but views on other monitors are always set to fill their monitor.

Take that into account and create views with a fixed size and position, then
only sync the primary view to the new geometry.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1345

js/ui/workspacesView.js

index 9335da625f66ce609d113ae777fa2d2f4d4cc65a..77661b287736c4a558852b8153dc13c0527f23b8 100644 (file)
@@ -21,7 +21,13 @@ var WorkspacesViewBase = GObject.registerClass({
     GTypeFlags: GObject.TypeFlags.ABSTRACT,
 }, class WorkspacesViewBase extends St.Widget {
     _init(monitorIndex) {
-        super._init({ style_class: 'workspaces-view' });
+        const { x, y, width, height } =
+            Main.layoutManager.monitors[monitorIndex];
+
+        super._init({
+            style_class: 'workspaces-view',
+            x, y, width, height,
+        });
         this.connect('destroy', this._onDestroy.bind(this));
         global.focus_manager.add_group(this);
 
@@ -747,16 +753,11 @@ class WorkspacesDisplay extends St.Widget {
     }
 
     _syncWorkspacesActualGeometry() {
-        if (!this._workspacesViews.length)
+        const primaryView = this._getPrimaryView();
+        if (!primaryView)
             return;
 
-        let monitors = Main.layoutManager.monitors;
-        for (let i = 0; i < monitors.length; i++) {
-            let geometry = i === this._primaryIndex ? this._actualGeometry : monitors[i];
-            const { x, y, width, height } = geometry;
-
-            this._workspacesViews[i].set({ x, y, width, height });
-        }
+        primaryView.set(this._actualGeometry);
     }
 
     _onRestacked(overview, stackIndices) {